/********************************Copyright (c)**********************************\
**
**                   (c) Copyright 2023, Main, China, QD.
**                           All Rights Reserved
**
**                                By(wo4fisher)
**                           http://www.wo4fisher.com
**
**----------------------------------文件信息------------------------------------
** 文件名称: lcd.h
** 创建人员: wht
** 创建日期: 2023-10-20
** 文档描述: 
**
**----------------------------------版本信息------------------------------------
** 版本代号: V0.1
** 版本说明: 初始版本
**
**------------------------------------------------------------------------------
\********************************End of Head************************************/
 
#ifndef __LCD_H_
#define __LCD_H_
#include "main.h"

#define USE_HORIZONTAL 3  //设置横屏或者竖屏显示 0或1为竖屏 2或3为横屏

#if USE_HORIZONTAL==0||USE_HORIZONTAL==1
#define LCD_W 320
#define LCD_H 480
#else
#define LCD_W 480
#define LCD_H 320
#endif

//----------------画笔颜色-------------------
#define WHITE         	 0xFCFCFC
#define BLACK            0X000000
#define RED           	 0xFC0000
#define GREEN            0xbecea1
#define BLUE             0x03234b
#define ORIGIN 					 0xff763e
//-----------------LCD端口定义---------------- 
#define LCD_RES_Clr()  HAL_GPIO_WritePin ( LCD_RES_GPIO_Port,LCD_RES_Pin,GPIO_PIN_RESET );///RES
#define LCD_RES_Set()  HAL_GPIO_WritePin ( LCD_RES_GPIO_Port,LCD_RES_Pin,GPIO_PIN_SET );

#define LCD_DC_Clr()   HAL_GPIO_WritePin ( LCD_DC_GPIO_Port,LCD_DC_Pin,GPIO_PIN_RESET );///DC
#define LCD_DC_Set()  HAL_GPIO_WritePin ( LCD_DC_GPIO_Port,LCD_DC_Pin,GPIO_PIN_SET );

#define LCD_BLK_Clr()  HAL_GPIO_WritePin ( LCD_BLK_GPIO_Port,LCD_BLK_Pin,GPIO_PIN_RESET );//BLK
#define LCD_BLK_Set()  HAL_GPIO_WritePin ( LCD_BLK_GPIO_Port,LCD_BLK_Pin,GPIO_PIN_SET );

#define LCD_CS_Clr()   HAL_GPIO_WritePin ( LCD_CS1_GPIO_Port,LCD_CS1_Pin,GPIO_PIN_RESET );///CS1
#define LCD_CS_Set()   HAL_GPIO_WritePin ( LCD_CS1_GPIO_Port,LCD_CS1_Pin,GPIO_PIN_SET );

#define ZK_CS_Clr()    HAL_GPIO_WritePin ( LCD_CS2_GPIO_Port,LCD_CS2_Pin,GPIO_PIN_RESET );///CS2
#define ZK_CS_Set()    HAL_GPIO_WritePin ( LCD_CS2_GPIO_Port,LCD_CS2_Pin,GPIO_PIN_SET );	

void LCD_Writ_Bus(uint8_t dat);//模拟SPI时序
void LCD_WR_DATA8(uint8_t dat);//写入一个字节
void LCD_WR_DATA(uint32_t dat);//写入三个字节
void LCD_WR_REG(uint8_t dat);//写入一个指令
void LCD_Address_Set(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2);//设置坐标函数
void LCD_Init(void);//LCD初始化

//-----------------LCD绘制图形函数---------------- 
void LCD_Fill(uint16_t xsta,uint16_t ysta,uint16_t xend,uint16_t yend,uint32_t color);//指定区域填充颜色
void LCD_DrawPoint(uint16_t x,uint16_t y,uint32_t color);//在指定位置画一个点
void LCD_DrawLine(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2,uint32_t color);//在指定位置画一条线
void LCD_DrawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2,uint32_t color);//在指定位置画一个矩形
void Draw_Circle(uint16_t x0,uint16_t y0,uint8_t r,uint32_t color);//在指定位置画一个圆

void LCD_ShowChinese(uint16_t x,uint16_t y,uint8_t *s,uint32_t fc,uint32_t bc,uint8_t sizey,uint8_t mode);//显示汉字串
void LCD_ShowChinese12x12(uint16_t x,uint16_t y,uint8_t *s,uint32_t fc,uint32_t bc,uint8_t sizey,uint8_t mode);//显示单个12x12汉字
void LCD_ShowChinese16x16(uint16_t x,uint16_t y,uint8_t *s,uint32_t fc,uint32_t bc,uint8_t sizey,uint8_t mode);//显示单个16x16汉字
void LCD_ShowChinese24x24(uint16_t x,uint16_t y,uint8_t *s,uint32_t fc,uint32_t bc,uint8_t sizey,uint8_t mode);//显示单个24x24汉字
void LCD_ShowChinese32x32(uint16_t x,uint16_t y,uint8_t *s,uint32_t fc,uint32_t bc,uint8_t sizey,uint8_t mode);//显示单个32x32汉字

void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t num,uint32_t fc,uint32_t bc,uint8_t sizey,uint8_t mode);//显示一个字符
void LCD_ShowString(uint16_t x,uint16_t y,const uint8_t *p,uint32_t fc,uint32_t bc,uint8_t sizey,uint8_t mode);//显示字符串
uint32_t mypow(uint8_t m,uint8_t n);//求幂
void LCD_ShowIntNum(uint16_t x,uint16_t y,uint16_t num,uint8_t len,uint32_t fc,uint32_t bc,uint8_t sizey);//显示整数变量
void LCD_ShowFloatNum1(uint16_t x,uint16_t y,float num,uint8_t len,uint32_t fc,uint32_t bc,uint8_t sizey);//显示两位小数变量

void LCD_ShowPicture(uint16_t x,uint16_t y,uint16_t length,uint16_t width,const uint8_t pic[]);//显示图片

#endif

 
/********************************End of File************************************/